﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Chilis.Marketing.Data.Access;
using Chilis.Marketing.Business.Entity;
using System.Data;

namespace Chilis.Marketing.Business.Logic
{
    public class BLUnidad
    {
        #region ATRIBUTOS

        private DAUnidad unidadDA;

        #endregion

        #region CONSTRUCTOR

        public BLUnidad()
        {
            this.unidadDA = new DAUnidad();
        }

        #endregion

        #region PROPIEDADES
        #endregion

        #region METODOS



        /// <summary>
        /// Método              : insertarUnidad
        /// Descripción         : Inserta Unidad en la BD
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="unidadBE">Entidad que representa la Unidad</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool insertarUnidad(BEUnidad unidadBE)
        {
            bool respuesta = false;
            try
            {
                int? IdUnidad = unidadDA.insertarUnidad(unidadBE, true);
                if (IdUnidad.HasValue && IdUnidad.Value > 0)
                {
                    respuesta = true;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }

        /// <summary>
        /// Método              : modificarUnidad
        /// Descripción         : Modifica Unidad en la BD
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="unidadBE">Entidad que representa el Unidad</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool modificarUnidad(BEUnidad unidadBE)
        {
            bool respuesta = true;
            try
            {
                respuesta = unidadDA.modificarUnidad(unidadBE, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }

        /// <summary>
        /// Método              : eliminarUnidad
        /// Descripción         : Elimina Unidad en la BD
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="unidadBE">Entidad que representa el Unidad</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool eliminarUnidad(BEUnidad unidadBE)
        {
            bool respuesta = true;
            try
            {
                respuesta = unidadDA.eliminarUnidad(unidadBE, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }


        /// <summary>
        /// Método              : obtenerUnidadPorId
        /// Descripción         : Obtiene la Entidad Unidad
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="idUnidad">Id Unidad</param>
        /// <returns>Retorna el Objeto que representa la Entidad Unidad</returns>
        public BEUnidad obtenerUnidadPorId(int idUnidad)
        {
            return unidadDA.obtenerUnidadPorId(idUnidad);
        }


        /// <summary>
        /// Función             : buscarUnidades
        /// Descripción         : Busca las Unidades de acuerdo a los filtros configurados
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="filtro">Entidad que representa la Unidad</param>
        /// <returns>Listado de Unidades de acuerdo al filtro especificado</returns>
        public DataTable buscarUnidades(BEUnidad filtro)
        {
            return unidadDA.buscarUnidades(filtro);
        }

        #endregion
    }
}
